﻿// ***********************************************************************
// Assembly         : OSS.BIM
// Author           : TianTeng
// Created          : 09-03-2018
//
// Last Modified By : TianTeng
// Last Modified On : 09-03-2018
// ***********************************************************************
// <copyright file="BmDatabaseUtil.cs" company="北京智帆高科科技有限公司">
//     Copyright © 北京智帆高科科技有限公司 2018
// </copyright>
// <summary></summary>
// ***********************************************************************

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Linq;
using ZFGK.SQLite;
using System.Windows.Forms;
using OSS.BIM.Business;
using OSS.BIM.Model;
using ZFGK.IO;
using ZFGK.Utility;

namespace OSS.BIM.Utility
{
    /// <summary>
    /// Class AsDatabaseUtil.
    /// </summary>
    public static class BmDatabaseUtil
    {
        /// <summary>
        /// Updates this instance.
        /// </summary>
        public static void Update()
        {
            // 判断当前数据库的版本
//             DbVersion dbVersions = DB.Context.From<DbVersion>().OrderByDescending(d => d.VersionId).Top(1).First();
//             string data = "2018-08-21";
//             if (dbVersions.Name.CompareTo(data) != 0)
//             {
//                 XtraMessageBox.Show(string.Format("必须使用版本号为{0}的数据库，否则程序会出现错误!", data), "提醒", MessageBoxButtons.OK, MessageBoxIcon.Error);
//             }
        }

        public static bool CheckAndUpdate()
        {
            // 检测数据库目录下是否存在数据库文件
            DirectoryUtil.EnsureDirExist(BmConfigUtil.AppDataPath);
            if (!File.Exists(BmConfigUtil.GetDatabasePath()))
            {
                try
                {
                    File.Copy(BmConfigUtil.GetBaseDatabasePath(), BmConfigUtil.GetDatabasePath());
                }
                catch (Exception e)
                {
                    ZfMessageUtil.ShowError(e.GetAllExMessage());
                    return false;
                }
            }
            else
            {
                // 检查数据库是否有更新
                BmDatabaseUtil.Update();
            }

            return true;
        }
    }
}
